package org.gy.T1;

import org.gy.T1.c.Student;

import java.util.Arrays;
import java.util.Comparator;

public class ArraysTest2 {
    public static void main(String[] args) {
// ⽬标：掌握如何对数组中的对象进⾏排序。
        Student[] students = new Student[4];
        students[0] = new Student("蜘蛛精", 169.5, 23);
        students[1] = new Student("紫霞", 163.8, 26);
        students[2] = new Student("紫霞", 163.8, 26);
        students[3] = new Student("⾄尊宝", 167.5, 24);
        // 2、public static <T> void sort(T[] arr, Comparator<? super T> c)
// 参数⼀：需要排序的数组
// 参数⼆：Comparator⽐较器对象（⽤来制定对象的⽐较规则）
        Arrays.sort(students, new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
// 制定⽐较规则了：左边对象 o1 右边对象 o2
// 约定1：认为左边对象 ⼤于 右边对象 请您返回正整数
// 约定2：认为左边对象 ⼩于 右边对象 请您返回负整数
// 约定3：认为左边对象 等于 右边对象 请您⼀定返回0
// if(o1.getHeight() > o2.getHeight()){
// return 1;
// }else if(o1.getHeight() < o2.getHeight()){
                // return -1;
// }
// return 0; // 升序
                return Double.compare(o1.getHeight(), o2.getHeight()); // 升序
// return Double.compare(o2.getHeight(), o1.getHeight()); // 降序
            }
        });
        System.out.println(Arrays.toString(students));
    }
}
